﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;

namespace B.S.BaseData.Domain.Interfaces
{
	/// <summary>
	/// 基础数据仓储接口
	/// </summary>
	public interface IBaseRepository<T> where T : class
	{
		//上下文,用于事务
		BaseDataDbContext Context { get;}

		//添加
		Task<int> InsertAsync (T entity);

		//显示所有数据
		IQueryable<T> GetAllAsync();


		//显示所有数据(带条件)
		IQueryable<T> GetAllAsync(Expression<Func<T, bool>> predicate);

		//根据编号查询一条数据
        Task<T> GetByIdAsync(int id);

		//根据条件查询一条数据
        Task<T> GetAsync(Expression<Func<T, bool>> predicate);


		//修改
		Task<int> UpdateAsync(T entity);



	}
}
